<?php
namespace phpqrcode;
/**
 * 二维码生成类
 */
class QrCodeZN {
    /**
     * 生成二维码
     * @param string $value 二维码地址
     * @param string $matrixPointSize 大小
     * @return 二维码
     */
    function createQrCode($value,$matrixPointSize){
        require_once 'phpqrcode.php';
        $errorCorrectionLevel = "L"; // 纠错级别：L、M、Q、H
        QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize);
    }
    
    /**
     * 生成二维码图片
     * @param string $value 二维码地址
     * @param string $matrixPointSize 大小
     * @param string $filename 生成的文件名  
     * @return 二维码
     */
    function createImgQrCode($value,$matrixPointSize,$filename){
        require_once 'phpqrcode.php';
        $errorCorrectionLevel = 'L';  // 纠错级别：L、M、Q、H  
        QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2);   
    }
    
    /**
     * 生成带LOGO的二维码图片
     * @param string $value 二维码地址
     * @param string $matrixPointSize 大小
     * @param string $filename 生成的文件名
     * @param string $logo logo地址
     * @return 二维码
     */
    function createImgQrCodeLogo($value, $matrixPointSize, $filename,$logo)
    {
        require_once 'phpqrcode.php';
        $errorCorrectionLevel = 'H'; // 容错级别
        QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
        $QR = $filename; // 已经生成的原始二维码图
        if (file_exists($logo)) {
            $QR = imagecreatefromstring(file_get_contents($QR)); // 目标图象连接资源。
            $logo = imagecreatefromstring(file_get_contents($logo)); // 源图象连接资源。
            $QR_width = imagesx($QR); // 二维码图片宽度
            $QR_height = imagesy($QR); // 二维码图片高度
            $logo_width = imagesx($logo); // logo图片宽度
            $logo_height = imagesy($logo); // logo图片高度
            $logo_qr_width = $QR_width / 5; // 组合之后logo的宽度(占二维码的1/5)
            $scale = $logo_width / $logo_qr_width; // logo的宽度缩放比(本身宽度/组合后的宽度)
            $logo_qr_height = $logo_height / $scale; // 组合之后logo的高度
            $from_width = ($QR_width - $logo_qr_width) / 2; // 组合之后logo左上角所在坐标点
            // 重新组合图片并调整大小
            imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
        } 
        imagepng($QR);
        imagedestroy($QR);
        imagedestroy($logo);
    }
}

?>